/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mindbox.mueblesalpes.negocio.persistence;

import com.mindbox.mueblesalpes.negocio.persistence.IClientePersistence;
import com.mindbox.mueblesalpes.negocio.entity.Cliente;
import com.mindbox.mueblesalpes.negocio.entity.TipoDocumento;
import com.mindbox.mueblesalpes.negocio.geo.Ciudad;
import com.mindbox.mueblesalpes.negocio.geo.Departamento;
import com.mindbox.mueblesalpes.negocio.geo.Pais;
import java.util.ArrayList;
import java.util.List;


/**
 *
 * @author Catalina
 */

public class ClientePersistenceMock implements IClientePersistence {
    private static List<Cliente> clientes;

    static{
        clientes = new ArrayList<Cliente>();
        clientes = cargarDatosPrueba();
    }

    public ClientePersistenceMock(){
        
        
    }

   /**
    * Este método realiza la creación del cliente
    * @param cliente
    * @return
    */
    public boolean crearCliente(Cliente cliente){
        clientes.add(cliente);
        return true;
    }
    /**
     * Este método retorna un listado con los clientes existentes
     * @return
     */
    public List<Cliente> mostrarClientes(){
        return clientes;
    }
    /**
     * Este método realiza la busqueda de un cliente
     * @param clienteIn
     * @return
     */
     public List<Cliente> buscarCliente(Cliente clienteIn) {

        List<Cliente> listResult = new ArrayList<Cliente>();
        if(clienteIn.getTipoDocumento() != null){
            for(Cliente clienteTemporal : clientes){
                if(clienteTemporal.equals(clienteIn)){
                    listResult.add(clienteTemporal);
                }
            }
        }else if (clienteIn.getNumeroDocumento() != null && !clienteIn.getNumeroDocumento().equals("")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getNumeroDocumento().contains(clienteIn.getNumeroDocumento())) {
                    listResult.add(clienteTemporal);
                }
            }
        }else if (clienteIn.getNombreCompleto() != null && !clienteIn.getNombreCompleto().equals("")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getNombreCompleto().contains(clienteIn.getNombreCompleto())) {
                    listResult.add(clienteTemporal);
                }
            }
        }else if (clienteIn.getTelefonoResidencia() != null && !clienteIn.getTelefonoResidencia().equals("")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getTelefonoResidencia().contains(clienteIn.getTelefonoResidencia())) {
                    listResult.add(clienteTemporal);
                }
            }
        }else if (clienteIn.getDireccion() != null && !clienteIn.getDireccion().equals("")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getDireccion().contains(clienteIn.getDireccion())) {
                    listResult.add(clienteTemporal);
                }
            }
        }/*if (clienteIn.getCiudadResidencia().getNombre() != null && !clienteIn.getCiudadResidencia().getNombre().equals("Seleccionar")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getCiudadResidencia().getNombre().contains(clienteIn.getCiudadResidencia().getNombre())) {
                    listResult.add(clienteTemporal);
                }
            }
        }if(clienteIn.getCiudadResidencia().getDepartamento().getNombre() != null && !clienteIn.getCiudadResidencia().getDepartamento().getNombre().equals("Seleccionar")){
            for(Cliente clienteTemporal : clientes){
                if(clienteTemporal.getCiudadResidencia().getDepartamento().getNombre().contains(clienteIn.getCiudadResidencia().getDepartamento().getNombre())){
                    listResult.add(clienteTemporal);
                }
            }
        }if(clienteIn.getCiudadResidencia().getDepartamento().getPais().getPais() != null && !clienteIn.getCiudadResidencia().getDepartamento().getPais().getPais().equals("Seleccionar")){
            for(Cliente clienteTemporal : clientes){
                if(clienteTemporal.getCiudadResidencia().getDepartamento().getPais().getPais().contains(clienteIn.getCiudadResidencia().getDepartamento().getPais().getPais())){
                    listResult.add(clienteTemporal);
                }
            }
        }*/
        else if (clienteIn.getEmail() != null && !clienteIn.getEmail().equals("")) {
            for (Cliente clienteTemporal : clientes) {
                if (clienteTemporal.getEmail().contains(clienteIn.getEmail())) {
                    listResult.add(clienteTemporal);
                }
            }
        }
        else {
           return clientes;
        }

        return listResult;
    }

    /**
     * Este método realiza el cargue de datos de prueba
     * @return
     */
     private static List<Cliente> cargarDatosPrueba(){
         Cliente cliente1 = new Cliente();
         Departamento depto1 = new Departamento();
         depto1.setNombre("cundinamarca");
         Pais pais1 = new Pais();
         Ciudad ciudad1=new Ciudad();
         ciudad1.setNombre("Bogota");
         pais1.setPais("Colombia");
         depto1.setPais(pais1);
         cliente1.setTipoDocumento(TipoDocumento.CEDULA);
         cliente1.setNumeroDocumento("53154157");
         cliente1.setNombreCompleto("Jose Luis Perales");
         cliente1.setTelefonoResidencia("2451068");
         cliente1.setDireccion("Diagonal 45 No. 30 - 45");
         cliente1.setCiudadResidencia(ciudad1);
         cliente1.setEmail("jose.perales@gmail.com");
         cliente1.getCiudadResidencia().setDepartamento(depto1);
         

         Cliente cliente2 = new Cliente();
         Departamento depto2 = new Departamento();
         depto2.setNombre("Cundinamarca");
         depto2.setPais(pais1);
         Ciudad ciudad2 = new Ciudad();
         ciudad2.setNombre("Bogota");
         cliente2.setTipoDocumento(TipoDocumento.CEDULA);
         cliente2.setNumeroDocumento("10345667");
         cliente2.setNombreCompleto("Gabriel Gomez Alegria");
         cliente2.setTelefonoResidencia("3456789");
         cliente2.setDireccion("Calle 100 No. 7 45");
         cliente2.setCiudadResidencia(ciudad2);
         cliente2.setEmail("ggomez@hotmail.com");
         cliente2.getCiudadResidencia().setDepartamento(depto2);
         

         Cliente cliente3 = new Cliente();
         Departamento depto3 = new Departamento();
         depto3.setNombre("Antioquia");
         depto3.setPais(pais1);
         Ciudad ciudad3 = new Ciudad();
         ciudad3.setNombre("Medellin");
         cliente3.setTipoDocumento(TipoDocumento.CEDULA);
         cliente3.setNumeroDocumento("56789043");
         cliente3.setNombreCompleto("Mariana Fernandez");
         cliente3.setTelefonoResidencia("5502518");
         cliente3.setDireccion("Calle 5 No. 5 9");
         cliente3.setCiudadResidencia(ciudad3);
         cliente3.setEmail("marianita@hotmail.com");
         cliente3.getCiudadResidencia().setDepartamento(depto3);
         

         Cliente cliente4 = new Cliente();
         Departamento depto4 = new Departamento();
         depto4.setNombre("Caldas");
         depto4.setPais(pais1);
         Ciudad ciudad4 = new Ciudad();
         ciudad4.setNombre("Manizalez");
         cliente4.setTipoDocumento(TipoDocumento.CEDULA);
         cliente4.setNumeroDocumento("10345789");
         cliente4.setNombreCompleto("Alejandro Sanchez");
         cliente4.setTelefonoResidencia("32521089");
         cliente4.setDireccion("Calle los alpes");
         cliente4.setCiudadResidencia(ciudad4);
         cliente4.setEmail("ale.sandchez98@yahoo.com");
         cliente4.getCiudadResidencia().setDepartamento(depto4);
         
         clientes.add(cliente1);
         clientes.add(cliente2);
         clientes.add(cliente3);
         clientes.add(cliente4);

         return clientes;
     }

}
